package com.ruoyi.energize.mapper;

import java.time.LocalDateTime;
import java.util.List;
import com.ruoyi.energize.domain.CashOrderGoods;
import com.ruoyi.energize.domain.YancaoCategorySaleReport;
import com.ruoyi.energize.domain.YancaoStoreDailySalesReport;
import org.apache.ibatis.annotations.Param;

/**
 * 订单商品信息表Mapper接口
 *
 * @author ruoyi
 * @date 2023-05-26
 */
public interface CashOrderGoodsMapper
{
    /**
     * 查询订单商品信息表
     *
     * @param autoId 订单商品信息表主键
     * @return 订单商品信息表
     */
    public CashOrderGoods selectCashOrderGoodsByAutoId(Long autoId);

    /**
     * 查询订单商品信息表列表
     *
     * @param cashOrderGoods 订单商品信息表
     * @return 订单商品信息表集合
     */
    public List<CashOrderGoods> selectCashOrderGoodsList(CashOrderGoods cashOrderGoods);

    /**
     * 统计出收银订单包含烟草数量订单(订单号)和纯烟草销售价格
     */
    public List<YancaoStoreDailySalesReport> selectCashOrderGoodsListByDate(@Param("dateTimeMin") LocalDateTime dateTimeMin, @Param("dateTimeMax") LocalDateTime dateTimeMax);

    /**
     * 新增订单商品信息表
     *
     * @param cashOrderGoods 订单商品信息表
     * @return 结果
     */
    public int insertCashOrderGoods(CashOrderGoods cashOrderGoods);

    /**
     * 修改订单商品信息表
     *
     * @param cashOrderGoods 订单商品信息表
     * @return 结果
     */
    public int updateCashOrderGoods(CashOrderGoods cashOrderGoods);

    /**
     * 删除订单商品信息表
     *
     * @param autoId 订单商品信息表主键
     * @return 结果
     */
    public int deleteCashOrderGoodsByAutoId(Long autoId);

    /**
     * 批量删除订单商品信息表
     *
     * @param autoIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCashOrderGoodsByAutoIds(Long[] autoIds);


    public List<YancaoCategorySaleReport> selectYancaoCategorySaleReportList(YancaoCategorySaleReport yancaoCategorySaleReport);

    public List<CashOrderGoods> listCigaretteSalesBydate(CashOrderGoods cashOrderGoods);

    public List<CashOrderGoods> getCigarettePriceRange(CashOrderGoods cashOrderGoods);

}
